// 这是一个聊天室的实现,包括了左侧的对话列表,右侧的聊天窗口
// 实现了基于SSE的消息接收,消息显示等功能

// 依赖于jquery, bootstrap, sse.js

// 首先,我们需要定义一个聊天室类,包括了聊天室的基本信息,对话列表,聊天窗口等
import SSE from 'sse.js'
import Option from './option.js'

class Room {
    constructor(dom, room_id, api_key) {
        this.dom = dom;
        this.room_id = room_id;
        this.api_key = api_key;
        this.chatList = [];
        this.chatWindow = null;
        this.sse = new EventSource('/sse/' + room_id);
    }
    // 定义一个方法,用于初始化聊天室
    init() {
        // 创建一个聊天窗口
        this.chatWindow = new ChatWindow(this.dom.find('.chat-window'));
        // 绑定聊天窗口的发送消息事件
        this.chatWindow.onSend = (message) => {
            this.send(message);
        };
        // 绑定聊天窗口的切换对话事件
        this.chatWindow.onSwitch = (chat) => {
            this.switch(chat);
        };
        // 绑定聊天窗口的删除对话事件
        this.chatWindow.onDelete = (chat) => {
            this.delete(chat);
        };
        // 绑定SSE的消息接收事件
        this.sse.onmessage = (event) => {
            let data = JSON.parse(event.data);
            if (data.type === 'chat') {
                this.receive(data.chat);
            } else if (data.type === 'join') {
                this.join(data.chat);
            } else if (data.type === 'leave') {
                this.leave(data.chat);
            }
        };
        

}
    // 加载对话列表
    loadList(){
        
    }
}